#pragma once

/*
@author TriLVH
@description Physic behavior of contra entity
*/

#include "ContraData.h"

#define MOVE_VX 2.3

class ContraPhysics {
private:
	/* Contra data mapping to data of contra entity */
	ContraData *_data;
	/**/
	int evenCounter;
	int evenMax;
	bool isEven;
public:
	/* Constructor to map data of entity to this data */
	ContraPhysics(ContraData* data);

	/* Contra stand */
	void stand();

	/* Contra move right */
	void moveRight();

	/* Contra move left */
	void moveLeft();

	/* contra update */
	void update();

	void updateInNormal();

	void updateInWater();

	/* contra ready to jump */
	void jumping();

	/* Upgrade contra bullet */
	virtual void upgradeBullet(int bulletType);
};